package com.google.code.alpaca.common.javamcr;

import java.util.Collections;
import java.util.HashMap;
import java.util.Map;

public class Constants {
	public static final Map<String, String[]> fanImplicationsMap = initFanImplicationsMap();

	private static Map<String, String[]> initFanImplicationsMap() {
		HashMap<String, String[]> map = new HashMap<String, String[]>();
		map.put("All Chows", new String[] { "No Honors" });
		map.put("All Even Pungs", new String[] { "No Honors", "All Simples",
				"All Pungs" });
		map.put("All Fives", new String[] { "No Honors" });
		map.put("All Green", new String[] {});
		map.put("All Honors", new String[] { "Pung of Terminals or Honors",
				"All Pungs", "Outside Hand" });
		map.put("All Pungs", new String[] {});
		map.put("All Simples", new String[] { "No Honors" });
		map.put("All Terminals", new String[] { "No Honors",
				"Pung of Terminals or Honors", "All Pungs", "Outside Hand",
				"Double Pung" });
		map.put("All Terminals and Honors", new String[] {
				"Pung of Terminals or Honors", "All Pungs", "Outside Hand" });
		map.put("All Types", new String[] { "Pung of Terminals or Honors" });
		map.put("Big Four Winds", new String[] { "Big Three Winds",
				"Pung of Terminals or Honors", "Seat Wind", "Prevalent Wind",
				"All Pungs" });
		map.put("Big Three Dragons", new String[] { "Dragon Pung",
				"Pung of Terminals or Honors", "Two Dragon Pungs" });
		map.put("Big Three Winds",
				new String[] { "Pung of Terminals or Honors" });
		map.put("Chicken Hand", new String[] {});
		map.put("Closed Wait", new String[] {});
		map.put("Concealed Hand", new String[] {});
		map.put("Concealed Kong", new String[] { "Melded Kong" });
		map.put("Double Pung", new String[] {});
		map.put("Dragon Pung", new String[] { "Pung of Terminals or Honors" });
		map.put("Edge Wait", new String[] {});
		map.put("Flower Tiles", new String[] {});
		map.put("Four Concealed Pungs", new String[] { "Two Concealed Pungs",
				"Concealed Hand", "All Pungs", "Three Concealed Pungs" });
		map.put("Four Kongs", new String[] { "Three Kongs", "Single Wait",
				"Melded Kong", "Two Melded Kongs", "All Pungs" });
		map.put("Four Pure Shifted Chows", new String[] { "Short Straight",
				"Pure Shifted Chows" });
		map.put("Four Pure Shifted Pungs", new String[] { "Pure Shifted Pungs",
				"All Pungs" });
		map.put("Full Flush", new String[] { "No Honors" });
		map.put("Fully Concealed Hand", new String[] { "Self-draw",
				"Concealed Hand" });
		map.put("Greater Honors and Knitted Tiles", new String[] { "All Types",
				"Concealed Hand" });
		map.put("Half Flush", new String[] {});
		map.put("Knitted Straight", new String[] {});
		map.put("Last Tile", new String[] {});
		map.put("Last Tile Claim", new String[] {});
		map.put("Last Tile Draw", new String[] { "Self-draw" });
		map.put("Lesser Honors and Knitted Tiles", new String[] { "All Types",
				"Concealed Hand" });
		map.put("Little Four Winds", new String[] { "Big Three Winds",
				"Pung of Terminals or Honors" });
		map.put("Little Three Dragons", new String[] { "Dragon Pung",
				"Pung of Terminals or Honors", "Two Dragon Pungs" });
		map.put("Lower Four", new String[] { "No Honors" });
		map.put("Lower Tiles", new String[] { "No Honors", "Lower Four" });
		map.put("Melded Hand", new String[] { "Single Wait" });
		map.put("Melded Kong", new String[] {});
		map.put("Middle Tiles", new String[] { "No Honors", "All Simples" });
		map.put("Mixed Double Chow", new String[] {});
		map.put("Mixed Shifted Chows", new String[] {});
		map.put("Mixed Shifted Pungs", new String[] {});
		map.put("Mixed Straight", new String[] {});
		map.put("Mixed Triple Chows", new String[] { "Mixed Double Chow" });
		map.put("Nine Gates", new String[] { "No Honors",
				"Pung of Terminals or Honors", "Full Flush", "Concealed Hand" });
		map.put("No Honors", new String[] {});
		map.put("One Voided Suit", new String[] {});
		map.put("Out With Replacement Tile", new String[] { "Melded Kong" });
		map.put("Outside Hand", new String[] {});
		map.put("Prevalent Wind",
				new String[] { "Pung of Terminals or Honors" });
		map.put("Pung of Terminals or Honors", new String[] {});
		map.put("Pure Double Chow", new String[] {});
		map.put("Pure Shifted Chows", new String[] {});
		map.put("Pure Shifted Pungs", new String[] {});
		map.put("Pure Straight", new String[] { "Short Straight",
				"Two Terminal Chows" });
		map.put("Pure Terminal Chows", new String[] { "All Chows", "No Honors",
				"Pure Double Chow", "Two Terminal Chows", "Full Flush" });
		map.put("Pure Triple Chow", new String[] { "Pure Double Chow" });
		map.put("Quadruple Chow", new String[] { "Pure Double Chow",
				"Tile Hog", "Pure Triple Chow" });
		map.put("Reversible Tiles", new String[] { "One Voided Suit" });
		map.put("Robbing the Kong", new String[] {});
		map.put("Seat Wind", new String[] { "Pung of Terminals or Honors" });
		map.put("Self-draw", new String[] {});
		map.put("Seven Pairs", new String[] { "Concealed Hand" });
		map.put("Seven Shifted Pairs", new String[] { "No Honors",
				"Seven Pairs", "Full Flush", "Concealed Hand" });
		map.put("Short Straight", new String[] {});
		map.put("Single Wait", new String[] {});
		map.put("Thirteen Orphans", new String[] { "All Types",
				"All Terminals and Honors", "Concealed Hand", "Outside Hand",
		// "Single Wait"
				});
		map.put("Three Concealed Pungs", new String[] { "Two Concealed Pungs" });
		map.put("Three Kongs",
				new String[] { "Melded Kong", "Two Melded Kongs" });
		map.put("Three Suited Terminal Chows", new String[] { "All Chows",
				"No Honors", "Two Terminal Chows", "Mixed Double Chow" });
		map.put("Tile Hog", new String[] {});
		map.put("Triple Pung", new String[] { "Double Pung" });
		map.put("Two Concealed Kongs", new String[] { "Two Concealed Pungs",
				"Melded Kong", "Two Melded Kongs", "Concealed Kong" });
		map.put("Two Concealed Pungs", new String[] {});
		map.put("Two Dragon Pungs", new String[] { "Dragon Pung",
				"Pung of Terminals or Honors" });
		map.put("Two Melded Kongs", new String[] { "Melded Kong" });
		map.put("Two Terminal Chows", new String[] {});
		map.put("Upper Four", new String[] { "No Honors" });
		map.put("Upper Tiles", new String[] { "No Honors", "Upper Four" });
		return Collections.unmodifiableMap(map);
	}
}
